/**
 * Sestavuje e-knihu ve formátu MOBI ze zadaných HTML souborů.
 *
 * 
 * <p>
 * Příklad použití:
 * <pre><tt>
 * // ----- Metadata
 *
 * Metadata metadata = new Metadata(
 *         "My Super Book",
 *         "I, Author",
 *         "en",
 *         "555-000-555", false);
 * metadata.setGenre("Fiction");
 * metadata.setDescription("Experiment");
 *
 * // ----- Pracovní adresář
 *
 * String workingDir = "/home/ja/_mybook1";
 *
 * // ----- Import souborů do pracovního adresáře (provede přizpůsobení HTML...)
 *
 * HtmlFilesImporter htmlImporter = new HtmlFilesImporter(workingDir);
 * htmlImporter.addFiles("/home/ja/_mybook1_data/1.html");
 * htmlImporter.addFiles("/home/ja/_mybook1_data/2/appendix.html");
 * htmlImporter.addFiles("/home/ja/_mybook1_data/2/figures.html");
 * boolean adaptSources = true;        // true!
 * htmlImporter.importt(adaptSources);
 *
 * SingleFileImporter coverImporter = new SingleFileImporter(workingDir);
 * coverImporter.setSrcFilePath("/home/ja/obrazky/mybookcover.jpg");
 * coverImporter.importt();
 *
 * // ----- Soubory knihy, vytváření některých chybějících souborů
 *
 * BookFiles bookFiles = new BookFiles(workingDir);
 *
 * bookFiles.addSrcFiles("1.html");      // importované soubory v workingDir...
 * bookFiles.addSrcFiles("2/appendix.html");
 *
 * bookFiles.setCoverImage("mybookcover.jpg");
 *
 * bookFiles.setDefaultToc();
 * TocGenerator tocg = new TocGenerator(bookFiles);
 * tocg.generate();
 *
 * bookFiles.setLoi("2/figures.html");
 *
 * bookFiles.setDefaultPersonalNotes();
 * PersonalNotesGenerator png = new PersonalNotesGenerator(bookFiles);
 * png.addDedication("foo bar");
 * png.addCitation("xyzzy", "Colossal Adventure");
 * png.generate();
 *
 * // ----- Vytvoření NCX a OPF ze souborů knihy a metadat
 *
 * bookFiles.setDefaultNcx();
 * NcxGenerator ncxg = new NcxGenerator(bookFiles, metadata);
 * ncxg.generate();
 *
 * bookFiles.setDefaultOpf(metadata);
 * OpfGenerator opfg = new OpfGenerator(bookFiles, metadata);
 * opfg.generate();
 *
 * // ----- Spuštění kindlegen --> Vytvoření MOBI
 *
 * KindlegenRunner kindlegen = new KindlegenRunner();
 * kindlegen.setOpfFileNamePath(bookFiles.getOpf().getAbsolutePath());
 * kindlegen.setOutputFileName(metadata.createStdBaseFileName() + ".mobi");
 * String kindlegenCmd = "kindlegen";   // viz kindlegen.findKindlegenCommand();
 * if (kindlegenCmd != null &&
 *         kindlegen.isKindlegenCommand(kindlegenCmd) != null) {
 *     kindlegen.setBaseKindlegenCommand(kindlegenCmd);
 *     kindlegen.setKindlegenCommandOutputStream(System.out);
 *     kindlegen.run();
 *     System.err.println("kindlegen result: " +
 *             (kindlegen.isInErrorState() ? "ERROR" : "OK"));
 * }
 * </tt></pre>
 * 
 *
 * <p>
 * viz <a href="http://www.mobipocket.com/dev/article.asp?BaseFolder=prcgen&File=mobiformat.htm">
 * Mobi formát</a>
 *
 * <p>
 * viz <a href="http://idpf.org/epub/20/spec/OPF_2.0.1_draft.htm">
 * Specifikace formátu OPF 2.0.1</a>
 * 
 */
package cz.mp.k3bg.core;
